package org.ykh.common.annotation;


import org.springframework.transaction.annotation.Transactional;

import java.lang.annotation.*;

/**
 * TODO: 这些问题
 * 这个注解是不是一个伪命题，是否可以通过设置事物隔离级别为串行化解决，串行化中查询是锁住整个表还是怎样。
 * 这个注解仅仅通过在方法中加入锁，并没有完全锁住共享资源（表数据），只要有其他方法也需要这个表数据就完蛋。
 * 考虑基于版本号的乐观锁，在每次提交数据时看一下版本号
 * @author ykh
 */

@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
@Transactional
public @interface SyncTransactional {
    String value() default "this";
}
